Program, information processing method and device, and data structure

ABSTRACT

The present invention relates to a program, an information processing method and apparatus, and a data structure with which connection can be formed reliably between apparatuses having different capabilities. A service that can be provided to another party is represented by five dimensional parameters, namely, Access Method, Link Speed, X scale, Y scale, and Audio Codec. The values of the parameters are all represented by integer values. Access Method is represented by number 1 in the case of RTSP/TCP+RTP/UDP, and by number 2 in the case of HTTP tunnelling. Link Speed is normalized by kbps as a base unit, and X scale and Y scale are normalized by 16 pixels as a base unit. Audio Codec supports predetermined methods represented by numbers 0 to 6. The present invention can be applied to a personal computer.

TECHNICAL FIELD

The present invention relates to programs, information processingmethods and apparatuses, and data structures, particularly to a program,an information processing method and apparatus, and a data structurewith which a connection can be formed reliably between apparatuseshaving different capabilities.

BACKGROUND ART

Recently, the Internet has become popular, leading to an increase in thenumber of users who exchange various data with other users over theInternet.

However, for example, when a user wishes to send a certain image to anapparatus of another user, it has been the case that mutual connectionis essentially prohibited due to difference between the capabilities ofa device of a user and a device of another user, resulting in a failurein transmitting image data.

In order to prevent this situation, a user must check the capability ofa device at the other end in advance.

For example, in the case of streaming, RTSP (Real Time StreamingProtocol) (Real Time Streaming Protocol, IETF RFC 2326, April 1998,<http://www.ietf.org/rfc/rfc/2326.txt>) defines use of SDP (SessionDescription Protocol) (SDP: Session Description Protocol, IETF RFC 2327,April 1998, <http://www.ietf.org/rfc/rfc/2327.txt>) as a method ofexchanging parameters for streaming between a server and a client.

However, RTSP does not define a specific method of exchangingparameters, resulting in a failure to overcome the problem that datacannot be exchanged reliably between a server and a client.

DISCLOSURE OF INVENTION

The present invention has been made in view of the situation describedabove, and it aims at allowing reliable connection with an apparatus atthe other end and exchange of data therewith.

A program according to the present invention allows a computer toexecute a generating step of obtaining M-dimensional parameters relatingto a service, the parameters being represented as numeric values, andgenerating detailed information representing content of the service bythe parameters obtained.

The generating step may obtain the parameters normalized by base units.

The generating step may divide the parameters into a plurality ofregions based on a main-factor parameter that is most likely to restrictcoexistence with the other parameters, and obtain the parameters foreach of the regions.

The generating step may obtain the M-dimensional parameters for each ofthe regions as one-dimensional integer values, respectively.

The generating step may represent the detailed information by acombination of the integer values and logic symbols.

The generating step may use a first symbol representing selection of oneof the plurality of integer values and a second symbol representing aset of the integer values.

The generating step may use, as the second symbol, a start valuerepresenting a start of a range, an end value representing an end of therange, and a step defining a change width between the start value andthe end value.

The service may be a service of sending or receiving data via a network.

The generating step may further obtain an identifier for identifying theservice, and add the identifier to the detailed information.

May be a first sending step of sending the identifier to a specifieddestination via the network.

The program may further include a first receiving step of receiving arequest for sending the detailed information associated with theidentifier from the destination; a sending step of sending the detailedinformation to the destination via the network, based on the requestreceived by the processing in the first receiving step; a secondreceiving step of receiving the M-dimensional parameters included in thedetailed information sent from the destination; and a communicating stepof communication with the destination based on the M-dimensionalparameters received by the processing in the second receiving step.

The program may further include a first receiving step of receiving theidentifier sent via the network.

The program may further include a requesting step of requesting sendingof the identification information generated by a sender of theidentifier received by the processing in the first receiving step, theidentification information being the detailed information associatedwith the identifier; a second receiving step of receiving the detailedinformation sent via the network from the sender of the identifier,based on the request by the processing in the requesting step; a settingstep of comparing the detailed information received by the processing inthe second receiving step with the detailed information generated by theprocessing in the generating step, and setting the M-dimensionalparameters that satisfy both of these sets of detailed information; asending step of sending the M-dimensional parameters generated by theprocessing in the setting step to the sender of the identifier; and acommunicating step of communicating with the sender based on theM-dimensional parameters sent by the processing in the sending step.

An information processing method according to the present inventionincludes a generating step of obtaining M-dimensional parametersrelating to a service, the parameters being represented as numericvalues, and generating detailed information representing content of theservice by the parameters obtained.

An information processing apparatus according to the present inventionincludes generating means of obtaining M-dimensional parameters relatingto a service, the parameters being represented as numeric values, andgenerating detailed information representing content of the service bythe parameters obtained.

A data structure according to the present invention includesM-dimensional parameters, and the parameters are represented bycombinations of integer values and logic symbols.

The logic symbols may include a first symbol representing selection ofone of a plurality of integer values and a second symbol representing aset of integer values.

The second symbol may include a start value representing a start of arange, an end value representing an end of the range, and a stepdefining a change width between the start value and the end value.

The data structure may further include an identifier number foridentifying the service.

According to the program and information processing method and apparatusof the present invention, M-dimensional parameters relating to aservice, represented as numeric values, are obtained, and detailedinformation representing content of the service by the parameters isgenerated.

According to the data structure of the present invention, the datastructure includes M-dimensional parameters, and the parameters arerepresented by combinations of integer values and logic symbols.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a diagram showing an example configuration of a network systemaccording to the present invention.

FIG. 2 is a diagram showing a software hierarchy.

FIG. 3 is a diagram showing the overall operation of the network systemaccording to the present invention.

FIG. 4 is a flowchart showing an operation of the network system shownin FIG. 1.

FIG. 5 is a flowchart showing an operation of the network system shownin FIG. 1.

FIG. 6 is a flowchart showing an operation of the network system shownin FIG. 1.

FIG. 7 is a flowchart showing an operation of the network system shownin FIG. 1.

FIG. 8 is a diagram showing an example of a profile space.

FIG. 9 is a diagram showing an example of a profile description.

FIG. 10 is a diagram showing an example of a profile atom.

FIG. 11 is a diagram showing an example screen showing a list of serviceproviders.

FIG. 12 is a block diagram showing an example configuration of apersonal computer.

FIG. 13 is a diagram showing the constitution of a profile.

FIG. 14 is a diagram showing a base unit of a profile.

FIG. 15 is a diagram showing regions of a profile.

FIG. 16 is a flowchart showing a profile description creating process.

FIG. 17 is a flowchart showing a profile description creating process.

FIG. 18 is a diagram showing a hierarchical structure of a profile.

FIG. 19 is a diagram showing an example of a provider profile.

FIG. 20 is a diagram showing an example of a consumer profile.

FIG. 21 is a flowchart showing a profile atom generating process.

FIG. 22 is a flowchart showing a profile atom generating process.

BEST MODE FOR CARRYING OUT THE INVENTION

FIG. 1 shows an example configuration of a network system according tothe present invention. In the network system, as user terminals,personal computers 11 and 12 and PDA (Personal Digital Assistants) 13are connected to a media instant message server (Media IM Server) 14.Also, an application server 15 is connected to the media IM server 14via the Internet 1.

In the personal computer 11, a media IM client #1 is implemented asmiddleware. In the personal computer 12, a media IM client #2 isimplemented as middleware. Similarly, in the PDA 13, a media IM client#3 is implemented as middleware.

In the application server 15, a media IM client #4 is implemented asmiddleware. The application server 15 provides print services #1 to #7to users accessing the application server 15.

The media IM server 14 controls instant message processing among thesemedia IM clients #1 to #4.

FIG. 2 shows the software configuration. In FIG. 2, the media IM clients#1 to #4 described above are shown as media IM client middleware 32. Themedia IM client middleware 32 is provided between an IP networktransport layer 31 and an API (Application Program Interface) 33. TheAPI 33 executes interface processing between applications #1 to #N andthe media IM client middleware 32. The media IM client middleware 32executes interface processing between the API 33 and the IP networktransport layer 31.

The applications #1 to #N respectively constitute service entities.

In the network system, as shown in FIG. 3, an application that providesa service (the application #1 in the example shown in FIG. 3) acts as aservice provider 51, and an application that receives the service (i.e.,that consumes the service) (the application #n in the example shown inFIG. 3) acts as a service consumer 52.

The service provider 51 and the service consumer 52 execute anegotiation process for connection via media IM clients #P1 and #C1respectively associated therewith, using a presence function, messagingfunction, or Info/Query function of instant messaging. After confirmingby the negotiation that mutual connection is possible, the serviceprovider 51 and the service consumer 52 execute a connection process bypeer to peer (P2P).

The service provider 51 and the service consumer 52 respectivelyconstitute service entities. A single application may consist entirelyof a service entity in some cases, or consist of a set of serviceentities. Hereinafter, for simplicity, it will be assumed that a singleservice entity corresponds to a single application.

Next, the connection process will be described in detail with referenceto flowcharts shown in FIGS. 4 to 7.

In step S1, the application #1 acting as the service provider 51instructs the media IM client #P1 to announce a profile space IDrepresenting types of services that it can provide to buddies registeredin a roster. Upon receiving the instruction in step S2, the media IMclient #P1, in step S3, notifies the buddies that have been registeredin the roster of the profile space ID by presence.

A buddy refers to a party involved in message communication with a user(or a media IM client) in an instant messaging service provided by themedia IM server 14. A buddy is information represented by a user ID, anickname associated with a user ID, or the like, registered in advancein the media IM server 14.

A roster refers to a list of buddies, i.e., a list of user IDs (ornicknames) of other users (or other media IM clients) specified by auser (or a media IM client) as parties involved in messagecommunication. Rosters for respective users are unitarily managed by themedia IM server 14.

For example, if a user of the media IM client #P1 has specified a userof the media IM client #C1 as a party involved in message communication,the user (a user ID or the like) of the user of the media IM client #C1is registered as a buddy in a roster associated with the media IM client#P1. Conversely, if the user of the media IM client #C1 has specifiedthe user of the media IM client #P1 as a party involved in messagecommunication, the user of the media IM client #P1 is registered as abuddy in a roster associated with the media IM client #C1.

As described above, in order to execute message communication by instantmessaging, parties involved must be mutually registered in advance inrosters as buddies. For example, if a first user of a media IM clienthas registered a second user of another media IM client as a buddy in aroster and if the second user has not registered the first user as abuddy in the client of the second user, in order to execute messagecommunication, the first user must be registered by the second user as abuddy in a roster prior to message communication.

When a user has logged in (connected) to the media IM server 14 using amedia IM client, the roster is provided as required from the media IMserver 14 to the media IM client, and is displayed in the form of a GUI(Graphical User Interface) on a display or the like. At that time, themedia IM server 14 supplies to the media IM client icons that allow theuser to readily recognize intended buddies, and information relating tothe buddies (e.g., information representing whether or not communicationis possible), such as presence, as well as the roster described above.The media client, upon receiving the roster and related information,displays the buddies in the roster in association with the icons andpresence.

It is to be understood that the rosters described above may be managedby a server provided particularly for unitarily managing the rosters.

Profile space IDs and application IDs are registered in advance andmanaged by an administrator of an application platform that allowsnegotiation of profiles at an application level based on a presencefunction, messaging function, and Info/Query function of instantmessaging, such as the network system shown in FIG. 1. Thus, the serviceconsumer 52 is allowed to identify contents based on the IDs.

FIG. 8 shows an example of a profile space for defining an MPEG-4streaming server application that runs on the personal computer 11. Asshown in the figure, the profile space is an M dimensional space thatrepresent services provided by the personal computer, and is constitutedby a profile space ID that serves as an ID for identifying each profilespace and M dimensional parameters. In this example, the profile spaceID is “10000001”, and the parameters include “access method”, “bit rate(link speed)”, “X scale”, “Y scale”, and “audio codec”. In this example,the value of the access method, representing a protocol used forcommunication, is 1 (RTSP/TCP+RTP/UDP) or 2 (HTTP tunnelling). The valueof the bit rate, representing a rate of a communication line that isconnected, is 6 k to 512 kbps. The value of the X scale, representing ascreen size in a horizontal direction, is 128 pixels to 352 pixels. Thevalue of the Y scale, representing a screen size in a verticaldirection, is 96 pixels to 288 pixels.

The access method in the profile represents a protocol used forcommunication, for example, either RTSP (Real Time StreamingProtocol)/TCP (Transmission Control Protocol)+RTP (Real Time TransportProtocol)/UDP (User Datagram Protocol) represented by number 1 or HTTP(Hyper Text Transfer Protocol) tunnelling represented by number 2. Thebit rate represents a data transfer rate of a communication line that isused. That is, the bit rate serves as information for determining anMPEG-4 data transfer rate of an MPEG-4 streaming service provided by theapplication #1.

The video codec representing a method of video compression and expansionis MPEG-4. The audio codec representing a method of audio compressionand expansion is one of none, CELP (Code Excited Linear Predictive) 8 k,CELP 16 k, AAC (Advanced Audio Coding) 16 k, AAC 32 k, AAC 44.1 k, andAAC 48 k.

As described above, all the parameters are represented by numericvalues. Thus, the availability of a service can be determined quicklyand readily between a service provider that provides the service and aservice consumer that receives the service (i.e., that uses theservice).

Referring back to FIG. 4, upon receiving the notification from the mediaIM client #P1 in step S4, the media IM server 14, in step S5, announcesthe notification to each buddy in the roster.

The media IM client #C1, which is one of the buddies (the serviceconsumer 52) that receive the announcement, upon receiving thenotification in step S6, determines (verifies) in step S7 whether theprofile is acceptable for the media IM client #C1 based on the profilespace ID and the application ID of the service provider 51 (the ID ofthe application #1 in this example). This is possible since, asdescribed earlier, each participant in the system is allowed to identifycontent of the profile (functions of a device of another party involved,as shown in FIG. 8) based on these IDs.

For example, each of the media IM clients (i.e., the personal computers11 and 12, and the like) stores in advance a table in which applicationIDs and profile IDs are associated with type of parameters included inprofiles and sets of values that the parameters are allowed to take on,and information regarding applications that act as service consumers, asshown in FIG. 8. In step S7, the media IM client refers to the tablethat it holds, identifies types of parameters included in a profileassociated with the application ID and the profile ID obtained in stepS6 and a set of values that the parameters are allowed to take on, anddetermines, based on the information that it holds regarding theapplication, whether the parameters identified (the profile associatedwith the parameters) are compatible with the functions of theapplication that acts as a service consumer (i.e., whether theparameters are acceptable).

The table defining association between IDs and contents may be stored ineach device (the personal computers 11 and 12, and the like), or in apredetermined server (e.g., the media IM server 14). In that case, auser may be billed each time the user uses the table for verification.This allows an administrator of the media IM server 14 to earn profit.

If the media IM client #C1 determines that the content of the profilefor which presence has been received from the service provider 51 isacceptable for the service consumer, in step S8, the media IM client #C1notifies the content of the profile (a profile associated with theprofile space ID, shown in FIG. 8) of the application #n that acts asthe service consumer 52 capable of accepting the profile. In step S9,the application #n receives the notification from the media IM client#C1.

Each of the media IM clients, having received the announcement from theservice provider (steps S4 to S6), ignores the announcement if it isdetermined by the verification in step S7 that an application thatsuitably acts as a service consumer does not exist.

Upon receiving the content of the presence from the service provider 51,the application #n acting as the service consumer 52, in step S10,instructs the media IM client #C1 to obtain detailed information of theservice provided by the service provider 51. Upon receiving theinstruction in step S11, the media IM client #C1, in step S12, using themessaging function or Info/Query function, requests transmission of aprovider profile including a part of or all the parameters of theparameter set of the profile space of the service provided by theservice provider 51, described earlier. The request includes destinationinformation for specifying the service provider 51.

When a notification or request is issued using the Info/Query function,as opposed to a case where the messaging function is used, a responsefor acknowledgement of reception is supplied from the recipient to thesender. For example, when the application #1 of the media IM client #P1obtains a roster from the media IM server 14, the media IM client #P1uses the Info/Query function to supply a GET command or the like to themedia IM server 14. Upon receiving the GET command, the media IM server14 supplies a response acknowledging reception to the application #1 viathe media IM client #P1 at the source of the command. By the response,the application #1 is allowed to confirm that the GET command has beensupplied to the media IM server 14.

Since an acknowledge response is supplied from a destination to a sourceat the application level as described above, an application is allowedto send a notification or request reliably to a destination by using theInfo/Query function.

On the other hand, when a notification or request is issued using themessaging function, an application at a destination that has receivedthe notification or request does not supply the acknowledgement responsedescribed above to a source. Thus, an application at the source is notallowed to grasp whether the notification or request issued using themessaging function has been received by the destination. Therefore,compared with the case where the Info/Query function is used, thereliability of transmission to an intended destination becomes lower.However, when a notification or request is issued using the messagingfunction, communication process becomes simpler compared with the casewhere the Info/Query function is used, so that processing load becomessmaller. The messaging function is used, for example, for exchanging aninstant message (IMSTANT MESSAGING) of a text document between media IMclients.

The notification or request by the Info/Query function, and thenotification or request by the messaging function, described above, canbe used by media IM servers as well as media IM clients, and can beused, for example, as a notification or request between media IM clientsas well as a notification or request between a media IM client and amedia IM server.

Furthermore, notifications or requests by the Info/Query function or themessaging function may include any data regardless of content, such asmessages and parameters, as well as commands.

As described above, the media IM client #P1, the media IM client #C1,and the media IM server 14 exchange data (including notifications,requests, and the like) using the messaging function or the Info/Queryfunction.

As described above, the media IM client #P1 or the like may send aprovider profile using either the messaging function or the Info/Queryfunction. It is to be noted that when a provider profile is sent usingthe Info/Query function, a response to the transmission of the providerfile is supplied from the destination to the source of the transmission.

Upon receiving the request from the media IM client #C1 in step S13, themedia IM server 14, in step S14, sends the request to the media IMclient #P1. Upon receiving the request from the media IM server 14 instep S15, the media IM client #P1, in step S16, supplies the request tothe application #1 acting as the service provider 51.

Upon receiving the request from the media IM client #P1 in step S17, theapplication #1, in step S18, assembles a provider profile that is to beprovided to the service consumer 52, and sends the provider profile tothe media IM client #P1. The assembly of the provider profile will bedescribed later in detail with reference to flowcharts shown in FIGS. 16and 17.

The content of the provider file generated by the application #1specifically sets ranges of values of parameters that the serviceprovider 51 can actually provide to the service consumer 52 withconsideration of runtime environments such as network link speed and CPUload status.

FIG. 9 shows an example of a provider profile generated as describedabove. In FIG. 9, the provider profile is represented as a profiledescription.

FIG. 9 shows an example where the application #1 acting as the serviceprovider 51 only supports a viewing angle corresponding to VGA (VideoGraphics Array) (160 pixels×120 pixels or 320 pixels×240 pixels), and isconnected to a network equivalent to a PHS (Personal Handyphone System)(a network with a maximum link speed of 128 kbps). Thus, in the exampleshown in FIG. 9, with consideration of the network link speed, theviewing angle is limited only to 160 pixels×120 pixels (X scale×Y scale)of the range defined by the profile space shown in FIG. 8.

In the example shown in FIG. 9, the profile space ID is “10000001”,indicating that the profile description corresponds to the profile spaceshown in FIG. 8. That is, as described earlier, when the media IM client#C1 requests a provider profile in step S12, in response to the request,a profile description (provider profile) corresponding to the profilespace ID supplied by the media IM client #P1 in step S3 is generated, asshown in FIG. 9.

The access method in FIG. 9 is either RTSP/TCP+RTP/UDP or HTTPtunnelling. The bit rate is 6 kpbs to 128 kbps. The audio codec is noneor CELP 8 k.

Upon receiving a response for the provider profile from the application#1 in step S19, the media IM client #P1, in step S20, returns theresponse to the application #n using the messaging function or theInfo/Query function.

Upon receiving the reply from the media IM client #P1 in step S21, themedia IM server 14, in step S22, sends the reply to the media IM client#C1. Upon receiving the reply in step S23, the media IM client #C1, instep S24, sends the reply to the application #n. In step S25, theapplication #n receives the reply from the service provider 51(including the provider profile shown in FIG. 9).

The application #n checks matching (performs a comparison) between theprovider profile of the service provider 51, received by the processingin step S25, and a consumer profile that the application #n itselfgenerates. The provider profile and the consumer profile described aboveare generated by a process described later with reference to flowchartsshown in FIGS. 16 and 17.

As described earlier, the provider profile is a profile created by theapplication #1 based on the profile space of the content determined bythe media IM client #C1 as acceptable by the service consumer. That is,the profile space corresponding to the provider profile is alsosupported by the application #n acting as the service consumer. Thus,the application #n is allowed to execute the same process as in the casewhere the application #1 creates a provider profile, thereby creating aprofile including a part of or all the parameters in a parameter set ofthe profile space supported by the service consumer (i.e., a consumerprofile). The application #n checks matching between the receivedprovider profile of the service provider 51 and the consumer profilecreated as described above.

As described earlier, the provider profile (profile description)presented by the service provider is represented by numeric values only.Thus, the service provider 51 is allowed to readily verify matchingsimply by a one-dimensional comparison with ranges of values ofparameters included in its own profile.

A dimension herein refers to the effective number of parameters. Thatis, the service consumer 52 compares, one by one, the range of values ofeach parameter of the consumer profile with the range of values of thecorresponding parameter of the provider profile.

If a part of or all of the ranges of values of the parameters of theconsumer profile overlap the ranges of values of the correspondingparameters of the provider profile, that is, if it is determined that arange exists in which the service consumer 52 is capable of receivingthe service provided by the service provider 51 (the application #n iscapable of accepting data sent by the application #1), the serviceconsumer 52 determines that matching is confirmed.

If matching is confirmed, the application #n, in step S26, requests theservice provider 51 to register itself (i.e., the service consumer 52)to the service provided. Upon receiving the request from the application#n in step S27, the media IM client #C1, in step S28, requests theservice provider 51 for registration to the service, using the messagingfunction or the Info/Query function, i.e., requests registration of theservice consumer 52 as a receiver of the service through registration ofthe application ID of the application #n of the service consumer 52. Atthis time, the profile space ID and the application ID (ID of theapplication #n) are included in the request.

Upon receiving the request from the media IM client #C1 in step S29, themedia IM server 14, in step S30, sends the request to the media IMclient #P1. Upon receiving the request from the media IM server 14 instep S31, the media IM client #P1, in step S32, sends the request to theapplication #1. In step S33, the application #1 receives theregistration request from the service consumer 52.

The application #1 acting as the service provider 51 registers theservice consumer 52 in association with the service provided to theservice consumer 52 by the processing in step S18. More specifically,the application ID of the application #n of the service consumer 52 isregistered in association with the profile space ID.

The information regarding the service consumer 52, registered asdescribed above, is used when the application #1 provides a service.That is, the application #1 refers to the registered information, andprovides a service to an application of the service consumer 52 (anapplication corresponding to the application ID) based on theinformation.

In step S34, the application #1 instructs the media IM client #P1 toissue a response to the request for registration to the service,supplied from the service consumer 52 (i.e., information indicatingwhether registration of the application #n has been completed), therequest being a request for registering the application ID of theapplication #n of the service consumer 52 in association with theprofile space ID to thereby register the service consumer 52 as areceiver of the service. Upon receiving the instruction in step S35, themedia IM client #P1, in step S36, issues a notification of aregistration result that serves as a response to the request suppliedthereto, using the messaging function or the Info/Query function. Uponreceiving the notification of the registration result in step S37, themedia IM server 14, in step S38, sends the notification to the media IMclient #C1. Upon receiving the notification in step S39, the media IMclient #C1, in step S40, sends the notification to the application #n.In step S41, the application #n receives the notification of theregistration result.

In step S42, the application #n determines, as a profile atom,parameters for assuring connectivity based on the profile descriptionfrom the service provider 51 (i.e., the provider profile received by theprocessing in step S25). That is, parameters that allow the application#n to use data sent by the application #1 as it is (parametersacceptable by the application #n) are determined. The process ofdetermining a profile atom will be described later in detail withreference to flowcharts shown in FIGS. 21 and 22.

FIG. 10 shows an example of the description of the profile atom. In thisexample, the profile space ID is “10000001”, indicating that the profileatom corresponds to the profile space shown in FIG. 8. That is, asdescribed earlier, upon receiving a profile description (providerprofile) corresponding to the profile space ID, created and supplied bythe media IM client #P1 in response to a request from the media IMclient #C1, the media IM client #C1 creates a consumer profilecorresponding to the profile space ID, and compares the consumer profilewith the provider profile supplied thereto. If these profiles aredetermined as matching, the media IM client #C1 executes registration tothe service provided, identifies ranges of parameters for assuringconnectivity from the ranges of the respective parameters included inthe profile space corresponding to the profiles, thereby generating aprofile atom including parameters in those ranges, as shown in FIG. 10.

The access method is HTTP tunnelling. That is, as the access method inthe provider profile shown in FIG. 9, access method associated withnumber 2 is selected.

The bit rate is 48 kbps, the X scale is 160, and the Y scale is 120. Theaudio codec is CELP 8 k.

In step S42, the application #n issues a connect request to which theprofile atom determined as described above is attached. Upon receivingthe request in step S43, the media IM client #C1, in step S44, sends therequest to the service provider 51 using the messaging function or theInfo/Query function. Upon receiving the request in step S45, the mediaIM server 14, in step S46, sends the request to the media IM client #P1.Upon receiving the request from the media IM server 14 in step S47, themedia IM client #P1, in step S48, sends the request to the application#1. In step S49, the application #1 receives the request.

Upon receiving the request, the application #1, in step S50, sends tothe service consumer 52 a response including connection informationneeded by the service consumer 52 (i.e., the application #n) to connectto the service provider 51 (i.e., the application #1). The connectioninformation may be, for example, a URI (Uniform Resource Identifier)representing an address of the service provider 51 that is accessed whenthe service consumer 52 connects to the service provider 51 (serviceURI).

The response sent by the processing in step S50 by the application #1 isreceived by the media IM client #P1 in step S51. In step S52, the mediaIM client #P1 sends the response to the service consumer 52 using themessaging function or the Info/Query function. Upon receiving theresponse from the media IM client #P1 in step S53, the media IM server14, in step S54, sends the response to the media IM client #C1. Uponreceiving the response from the media IM server 14 in step S55, themedia IM client #C1, in step S56, sends the response to the application#n. In step S57, the application #n receives the response.

After instructing sending of a response in step S50, the application #1waits for a direct access (not via the media IM server 14) from theapplication #n. Thus, in step S58, the application #n accesses theservice URL (Uniform Resource Locator) of the application #1 by peer topeer, not via the media IM server 14. In step S59, the application #1accepts the peer-to-peer access to the URL by the application #n.

Thereafter, the application #1 and the application #n are allowed toexchange information by peer to peer.

As a final result of the procedure described above, the application #1and the application #n exchange executable functions in advance, so thatconnectivity between the application #1 and the application #n isassured, serving to prevent failure to exchange information.

As described above, according to the application platform of the presentinvention, new protocol architecture for allowing negotiation ofprofiles at the application level is implemented based on the presencefunction, messaging function, and Info/Query function of instantmessaging. Thus, by using a match making function in the applicationplatform, applications mounted on various devices having differentcapabilities (obviously, the capabilities may be the same), such aspersonal computers and mobile devices, are allowed to connect to eachother readily and reliably. Accordingly, a system that allows rich mediainformation including various information such as text, audio, music,moving pictures, and still pictures to be transmitted by peer-to-peercommunication can be implemented. In that case, applications (serviceentities) for which connectivity is finally assured are allowed tocommunicate with each other by peer to peer. Accordingly, a user isallowed to exchange information readily and reliably without performingspecial operations.

The applications (service entities) described above may be applied tocommercial application servers on the Internet 1 as well as personalcomputers and network-enabled CE (Consumer Electronics) devices.

For example, in the application server 15 shown in FIG. 1, anapplication for a commercial print service is run as a service provideron the media IM client #4. Thus, the personal computers 11 and 12 andthe PDA 13 shown in FIG. 1 are allowed to use, via the Internet 1, theprint service provided by the application server 15, by executing theprocedure described above with the application server 15.

Thus, according to the present invention, by searching for servicesprovided by servers connected to the Internet 1, a list of serviceproviders can be displayed as a buddy list, for example, as shown inFIG. 11.

In the example shown in FIG. 11, a list of service providers that can beused by a print service application acting as a service consumer on themedia IM client #3 implemented on the PDA 13 is shown. In this case, byusing the presence function, status of commercial services can beexpressed in detail and flexibly in relation to service consumers. Forexample, in the example shown in FIG. 11, whether or not a commercialservice is in operation is indicated by a lamp icon 13A. In this case,for example, a commercial service in operation is indicated by green,and a commercial service not in operation is indicated by red.Furthermore, in the example shown in FIG. 11, detailed status, such aswhen a requested print will be finished, and a price, is displayed asstatus information.

Obviously, between applications of service providers and serviceconsumers on user terminals, status can be displayed on an applicationbasis depending on the other party involved, using a user interface andthe presence function.

FIG. 12 shows an example configuration of the personal computer 11.Although not shown, another personal computer 12 is similarlyconfigured. Thus, FIG. 12 is also referred to, when appropriate, as theconfiguration of the personal computer 12.

Referring to FIG. 12, a CPU (Central Processing Unit) 121 executesvarious processes according to programs stored in a ROM (Read OnlyMemory) 122 or programs loaded into a RAM (Random Access Memory) 123from a storage unit 128. The RAM 123 also stores, as required, dataneeded by the CPU 121 for executing various processes.

The CPU 121, the ROM 122, and the RAM 123 are connected to each othervia a bus 124. The bus 124 is also-connected to an input/outputinterface 125.

The input/output interface 125 is connected to an input unit 126including a keyboard and a mouse, an output unit including a displayimplemented by a CRT (Cathode Ray Tube) or an LCD (Liquid CrystalDisplay) and a speaker, a storage unit 128 implemented by a hard disk orthe like, and a communication unit 129 implemented by a modem, aterminal adaptor, or the like. The communication unit 129 executescommunication processes via a network including the Internet.

Furthermore, the input/output interface 125 is connected to a drive 130as required. A magnetic disk 141, an optical disk 142, a magneto-opticaldisk 143, a semiconductor memory 144, or the like, is mounted asrequired, and a computer program read therefrom in installed on thestorage unit 128 as required.

The application #1 (the service provider 51) and the media IM client#P1, or the application #n (the service consumer 52) and the media IMclient #C1, described earlier, are loaded by the CPU 121 to the RAM 123and are then executed.

According to the present invention, as described above, a profiledescribing content of a service is provided to a service consumer. Theprofile (profile description) is expressed by M-dimensional parameters.A dimension herein refers to the effective number of parameters. In theexample shown in FIG. 13, the profile is composed of five-dimensionalparameters (i.e., M=5).

FIG. 13 shows a profile space of an MPEG (Moving Picture ExpertsGroup)-4 streaming server, which differs from the profile space in theexample shown in FIG. 8. In the example shown in FIG. 13, parametersmainly include three types of parameters, namely, overall parameters,video parameters, and audio parameters. Of these parameters, the overallparameters include access method and Link Speed, and video parametersinclude X scale and Y scale. That is, the parameters arefive-dimensional parameters including access method, Link Speed, Xscale, Y scale, and audio codec. The five dimensional parameters areidentified by a profile space ID of “10000002”.

The access method in the profile represents a protocol that is used forcommunication, and is either RTSP (Real Time Streaming Protocol)/TCP(Transmission Control Protocol)+RTP (Real Time Transport Protocol)/UDP(User Datagram Protocol) represented by number 1 or HTTP (Hyper TextTransfer Protocol) tunnelling represented by number 2.

The Link Speed, representing a data transfer rate of a communicationline that is used, corresponds to the bit rate in the example shown inFIG. 8, and is a value within a range of 6 kpbs to 100,000 kbps.

The X scale, representing a screen size along the direction of the Xaxis, is within a range of 128 pixels to 352 pixels, and the Y scale,representing a screen size along the direction of the Y axis, is withina range of 96 pixels to 288 pixels.

The audio codec, representing a method of audio compression andexpansion, is one of none represented by number 0, CELP 8 k representedby number 1, CELP (Code Excited Linear Predictive) 16 k represented bynumber 2, AAC (Advanced Audio Coding) 16 k represented by number 3, AAC32 k represented by number 2, AAC 44.1 k represented by number 5, andAAC 48 k represented by number 6.

As described above, all the parameters are represented by integervalues. Furthermore, if a parameter constituting one dimension isrepresented as a combination of a plurality of integer values, thefollowing logic symbols are used.

If a parameter is represented as one of a plurality of integer values, alogic symbol “OR” is used. “OR” is represented using a delimiter [|],such as [k] |[m] |[n]. This means that the parameter is one of k, m, andn. In this case, k, m, and n are integers, and are ordered from smallerto larger (i.e., k<m<n).

For example, as will be described later with reference to FIG. 15, theaccess method is “1|2”, which indicates that the access method is either1 (RTSP/TCP+RTP/UDP) or 2 (HTTP tunnelling).

When a parameter is represented by an integer value within apredetermined range, a logic symbol “:”representing the range is used. Arange is represented, for example, as [m]:[n]#[k]. [m] represents astart value and [n] represents an end value. [m] and [n] cannot beomitted. Furthermore, obviously, the start value [m] is less than orequal to the end value [n]. #[k] represents a step defining a changewidth between the start value [m] and the end value [n], and is anatural number and a multiple of 1 as a base unit of normalization. [k]may be omitted.

For example, if the video X axis is represented as “8:22#2”, it is meantthat the video X axis is one of (8, 10, 12, 14, 16, 18, 20, 22). Thatis, assuming that the base unit of normalization is 16 pixels, (assumingthat 16 pixels corresponds to k=1), the representation represents a setof values sampled at an interval of 32 pixels (corresponding to k=2)from 128 pixels to 352 pixels.

A description including a combination of a range and “OR” is prohibited,since otherwise it becomes impossible to readily determine whether aservice can be received. A not-applicable (N/A) parameter is representedby null (,,).

Furthermore, when a profile is described specifically, each parameter isnormalized by a base unit that is predetermined as a unit ofnormalization. As shown in FIG. 14, the base unit for Link Speed iskbps, and the base unit for X scale and Y scale is 16 pixels. Thus, 128pixels to 352 pixels for X scale, shown in FIG. 13, is represented as 8to 22 when normalized by 16 pixels, and 96 pixels to 288 pixels for Yscale is represented as 6 to 18.

The standard method for describing parameters has been described above.Furthermore, customized description may be added in the form of an XML(eXtensible Markup Language) document.

Furthermore, elements constituting dimensions may be added as needed.For example, in the example shown in FIG. 13, audio codec is one ofseven values represented by numbers 0 to 6. However, other elementsrepresented by numbers 7 and 8 may be added as extension.

It is to be noted that when some elements are added, backwardcompatibility must be assured. That is, it is required that a devicethat does not have audio codec elements represented by numbers 7 and 8be able to use a profile space with a profile space ID of “10000002”.Accordingly, it is assured that each device is capable of determiningcontent based on a profile space ID. Thus, even if the number ofelements constituting each dimension is increased, each device is ableto determine content based on a profile space ID (compatibility isassured), so that the profile space ID is not changed. On the otherhand, if the number of dimensions is increased, each device is notallowed to determine content based on a profile space ID (compatibilityis not assured), so that the profile space ID is changed.

Furthermore, according to the present invention, profiles can be createdseparately for a plurality of regions based on a main-factor parameterthat is most likely to restrict coexistence with other parameters.

What is meant by “to restrict coexistence with other parameters” is thatwhen a parameter takes on a certain value, combination with otherparameters is inhibited. According to the present invention, link speedis a main-factor parameter.

For example, when a user is allowed to select an arbitrary value forLink Speed and an arbitrary value for audio codec, it is possible thatan environment that is not actually achievable or infeasible is defined.For example, if a personal computer that is connected to an analogtelephone line with a link speed below 50 kbps selects AAC 44.1 krepresented by number 5 or AAC 48 k represented by number 6 as audiocodec, such a relationship is actually infeasible.

Thus, according to the present invention, as shown in FIG. 15, regionsare separated as a first region (region denoted as (1)) with a linkspeed below 50 kbps (49 kbps), as in the case of an analog telephonecircuit, a second region (region denoted as (2)) with a link speed notlower than 50 kbps and below 200 kbps (not larger than 199 bps), as inthe case of an ISDN (Integrated Service Digital Network) or PHS, a thirdregion (region denoted as (3)) with a link speed not smaller than 200kbps, such as 1.5 Mbps or 8 Mbps in the case of ADSL (Asymmetric DigitalSubscriber Line). Furthermore, a fourth region (region denoted as (4))is defined as a region in a case where link speed is not smaller than200 kbps and where the capability of the CPU (Central Processing Unit)of the device is high.

In the example shown in FIG. 15, in the first region, access method iseither 1 or 2, and link speed is 35 kbps to 49 kbps. X scale is 10, andY scale is 7. Audio codec is either 0 or 1.

In the second region, access method is either 1 or 2, link speed is 50kbps to 199 kbps. X scale and Y scale are 10 and 7, respectively, as inthe first region. Audio codec is either 1 or 2.

In the third region, access method is either 1 or 2, link speed is 200kbps to 100,000 kbps. X scale is 10, and Y scale is 7. Audio codec isone of 1 to 6.

In the fourth region, access method is either 1 or 2, and link speed is200 kbps to 100,000 kbps, as in the third region. X scale is 20, and Yscale is 15. Audio codec is one of 1 to 6.

In each of the regions, each of the five-dimensional parameters isdefined as a one-dimensional integer value, i.e., as a single numericvalue.

The number of divisions of profiles (number of regions) may bedetermined arbitrarily by each service provider. Also, the value of aprofile description (values of constituting elements of each dimensionin each region) may be determined arbitrarily by a service provider.

It is to be noted that even when the number of regions is changed,profile space IDs are not changed.

As described above, when regions are divided into a plurality of regionsbased on a main-factor parameter, in each region, whatever values of thefive-dimensional parameters are set by a service consumer, anenvironment that is infeasible or impossible is not set. Therefore, aservice consumer is allowed to select a region from a plurality ofregions and to select arbitrary values as appropriate from theparameters of the five dimensions in that region.

More specifically, in the processing in step S25 described earlier withreference to FIG. 5, upon receiving a provider profile (profiledescription) of the service provider 51, the service consumer 52compares the values of the main-factor parameter (link speed) describedin the respective regions of the provider profile with the main-factorparameter of its own consumer profile to extract a region where a matchexists. As described earlier, since the main-factor parameter isrepresented by an integer, whether a matching range exists can bereadily determined by a simple integer calculation.

When parameters are not divided into regions as opposed to the casedescribed above, the service consumer 52 is not allowed to select anapplicable service without using a program involving complex conditionalbranching.

As described above, a service is represented by a space constituted by Mdimensional parameters. Individual spaces are identified by profilespace IDs. Parameters constituting an individual space are representedby combinations of integer values and logic symbols. As logic symbols,“OR” representing selection of one of a plurality of integer values, and“range” representing a set of integer values, are used. By representinga service using such a data structure, whether a service can be used canbe quickly and readily determined between a service provider thatprovides a service and a service consumer that receives the service(that uses the service).

Next, a process in which the service provider 51 (application #1)creates a profile (profile description) to be provided to the serviceconsumer 52 (application #n) will be described with reference toflowcharts shown in FIGS. 16 and 17. This process corresponds to theprocess of assembling a provider profile in step S18 shown in FIG. 5.

Now, let it be supposed that the application #1 generates a providerprofile (profile relating to its own functions) with a profile space IDof “10000002”, shown in FIG. 13. Let it also be supposed that theapplication #1 is connected to an ADSL line of 8 Mbps, with a link speedof 4,800 as a main-factor parameter, determined from an actualthroughput of the line (CurrentLinkSpeed), with a VGA (Video GraphicsArray) video display system, and with a relatively low CPU processingcapability.

In the steps described below, the application #1 checks it owncapabilities (functions) associated with each region, and sets valuescorresponding to its own capabilities associated with each region. Thus,in the steps described below, specific values set to parameters arevalues corresponding to its own capabilities associated with eachregion. The application #1 may check its own capabilities in each step,or read its own capabilities checked and stored in advance.

In step S71, the application #1 sets the value “10000002” of the profilespace ID currently being considered in a variable PSId for setting aparameter.

Then, in steps S72 to S78, parameters relating to the first region areset. In steps S79 to S85, parameters relating to the second region areset. In steps S86 to S92, parameters relating to the third region areset. In steps S93 to S98, parameters relating to the fourth region areset.

In step S72, the application #1 sets a value “1” in a variablePSId.region indicating that the region is the first region.

More specifically, as shown in FIG. 18, a profile with a profile spaceID of “10000002” is configured under PSId (profile space ID) as a root,with each region (Region) being constituted of parameters access (AccessMethod), linkSpeed (Link Speed), xScale (X scale), yScale (Y scale), andaudio (Audio Codec). The tree structure described above will hereinafterbe described using a “.” to delimit layers, such as PSId.region.access.

Thus, more specifically, “10000002.1” is set in PSId.region. In FIGS. 16and 17, however, in order to avoid lengthy description, only parametersthat are newly set are shown.

In step S73, the application #1 sets {1|2} representing1:RTSP/TCP+RTP/UDP or 2:HTTP tunnelling as Access Method inPSId.region.access. This is because, as described earlier, theapplication #1 has a function for carrying out communication using“RTSP/TCP+RTP/UDP” and also has a function of carrying out communicationusing “HTTP tunnelling”. If the application #1 only has a function ofcarrying out communication using “RTSP/TCP+RTP/UDP” (i.e., does not havea function of carrying out communication using “HTTP tunneling”), theapplication #1 sets {1} representing 1:RTSP/TCP+RTP/UDP as Access Methodin PSId.region.access.

In step S74, the application #1 sets {39:49} representing 30 kbps to 49kbps in PSId.region.linkSpeed as Link Speed. This is because the firstregion is being considered for processing and the default link speed forthe first region is 30 kbps to 49 kbps. (Thus, as will be describedlater, in the processing in steps S81, S88, and S95 associated with thesecond to fourth regions, 50 kbps to 199 kbps, 200 kbps to 100,000 kbps,and 200 kbps to 100,000 kbps, which are default link speeds for therespective regions, are set, respectively.)

In step S75, the application #1 sets {10} representing 160 pixels inPSId.region.xScale as Xscale, and sets {7} representing 114 pixels inPSId.region.yScale as Y scale. These values are based on functions ofthe application #1, relating to viewing angles for displaying images.

In step S76, the application #1 sets {0|1} representing 0:none or 1:CELP8 k as audio Codec in PSId.region.audio. This is because the application#1 supports both the functions of 0:none and 1:CELP 8 k as audio Codec.

Then, in step S77, the application #1 compares the value of currentspeed (Current Link Speed) representing the effective throughput of aline to which the application #1 is connected with the lower limit ofthe subsequent second region, i.e., 50 kbps, to determine whether thecurrent speed is smaller than the lower limit. If the current link speedis smaller than 50 kbps, second and higher regions cannot be defined, sothat the process proceeds to step S78. In step S78, the application #1again sets {30:CurrentLinkSpeed} representing values from 30 kbps to thecurrent link speed (CurrentLinkSpeed) in PSId.region.linkSpeed as LinkSpeed. That is, the value {30:49} set in the processing of step S74 isupdated. Accordingly, a maximum value possible is set as a parameter.

In this case, CurrentLinkSpeed of the application #1 is 4,800 kbps,which is larger than 50 kbps. Thus, the process proceeds to step S79, inwhich parameters for the second region are set.

In step S79, the application #1 sets a value “2” representing the secondregion in PSId.region. More specifically, “10000002.2” is set inPSId.region.

In step S80, similarly to step S73, the application #1 sets {1|2} inPSId.region.access as Access Method.

In step S81, the application #1 sets {50:199} representing 50 kbps to199 kbps in PSId.region.linkSpeed as Link Speed.

In step S82, similarly to step S75, the application #1, sets {10} inPSId.region.xScale as X Scale, and sets {7} in PSId.region.yScale as YScale.

In step S83, the application #1 {1|2} representing 1:CELP 8 k or 2:CELP16 k in PSId.region.audio as Audio Codec.

In step S84, the application #1 compares the value of CurrentLinkSpeedwith the lower limit of the subsequent third region, i.e., 200 kbps, todetermine whether the value of CurrentLinkSpeed is smaller than thelower limit. If the value of CurrentLinkSpeed is smaller than 200 kbps,parameters for the third region cannot be set. Thus, the processproceeds to step S85, in which the application #1 again sets{50:CurrentLinkSpeed} in PSId:region:linkSpeed as Link Speed. That is,the value {50:199} set in step S81 is updated.

If it is determined in step S84 that the value of CurrentLinkSpeed islarger than 200 kbps, the process proceeds to step S86, in whichparameters for the third region are set. In this case, the value ofCurrentLinkSpeed is 4,800 kbps, so that the application #1 determinesNO, and processing in step S86 and subsequent steps are executed.

In step S86, the application #1 sets a value “3” for the third region inPSId.region. More specifically, a value of “10000002.3” is set inPSId.region.

In step S87, similarly to step S80, the application #1 sets {1|2} inPSId.region.access as Access Method.

In step S88, the application #1 sets {200:100000} representing 200 kbpsto 100,000 kbps in PSId.region.linkSpeed as Link Speed.

In step S89, similarly to step S82, the application #1 sets {10} inPSId.region.xScale as Xscale, and sets {7} in PISd.region.yScale as YScale.

In step S90, the application #1 sets {1|2|3|4|5|6} representing 1:CELP 8k, 2:CELP 16 k, 3: AAC 16 k, 4: AAC 32 k, 5: AAC 44.1 k, or 6: AAC 48 kin PSId.region.audio as Audio Codec.

In step S91, the application #1 determines whether or not the capabilityof the CPU is low as a condition for setting parameters for thesubsequent fourth region. The CPU capability is determined as low if aclock frequency thereof is lower than a predetermined referencefrequency (e.g., 800 MHz) or a predetermined type of CPU (e.g., Pentium®4).

In this case, the CPU of the application #1 has a low capability, sothat step S91 evaluates to YES. Then, in step S92, Link Speed for thethird region is updated. Thus, Link Speed that has been set to be{200:CurrentLinkSpeed} is again set in PSId.region.linkSpeed. That is,the value of “200:1000000} set by the processing in step S88 is updatedto a maximum value possible.

If it is determined in step S91 that the CPU capability is not low(i.e., it is high) (i.e., the clock frequency is 800 MHz or higher, orthe functionality of the CPU is equivalent to that of Pentium® 4 orhigher), the process proceeds to step S93, in which parameters for thefourth region are set.

In step S93, the application #1 sets a value “4” representing the fourthregion in PSId.region. More specifically, “10000002.4” is set.

In step S94, similarly to step S87, the application #1 sets {1|2} inPSId.region.access as Access Method.

In step S95, similarly to step S88, the application #1 sets {200:100000}in PSId.region.linkSpeed as Link Speed.

In step S96, the application #1 sets {20} representing 320 pixels inPSId.region.xScale as X scale, and sets {15} representing 240 pixels inPSID.region.yScale as Y scale.

In step S97, similarly to step S90, the application #1 sets{1|2|3|4|5|6} in PSId.region.audio as Audio Codec.

Finally, in step S98, the application #1 again sets{200:CurrentLinkSpeed} in PSId.region.linkSpeed as Link Speed. That is,the value {200:100000} set by the processing in step S95 is updated.

FIG. 19 shows the provider profile (provider profile description) of theapplication #1 acting as the service provider 51, set as describedabove. As shown in the figure, in this case, parameters for the threeregions have been set by the processing in steps S71 to S92 describedabove. The parameters that have been set have the values described withreference to FIGS. 16 and 17.

The profile description creating process shown in FIGS. 16 and 17 isalso executed by the application #n acting as the service consumer 52.However, specific values of the parameters mentioned in the steps shownin FIGS. 16 and 17 are for the application #1, not for the application#n, so that values set in the steps differ.

For example, let it be supposed that the application #n acting as theservice consumer 52 is connected to an ISDN line of 64 kbps, which isrelatively slow, and that CurrentLinkSpeed representing the effectivethroughput is 48 kbps. In this case, when the profile descriptioncreating process shown in FIGS. 16 and 17 are executed, only processingfor the first region in steps S71 to S78 is executed. That is, since thevalue of CurrentLinkSpeed (48 kbps) is smaller than 50 kbps, step S77evaluates to YES, and processing in step S79 and subsequent steps is notexecuted.

That is, in this case, the application #n sets “10000002” in PSId instep S71, and sets a value “1” representing the first region inPSId.region in step S72. More specifically, “10000002.1” is set inPSId.region.

In step S73, the application #n sets {1|2} in PSId.region.access asAccess Method.

In step S74, the application #n sets {30:48} in PSId.region.linkSpeed asLink Speed.

In step S75, the application #n sets {10} in PSId.region.xScale as XScale, and sets {7} in PSId.region.yScale as Y Scale.

In step S77, the value of CurrentLinkSpeed, which is 48 kbps, isdetermined as smaller than 50 kbps. Thus, in step S78, the application#n again sets {30:CurrentLinkSpeed} in PSId.region.linkSpeed as LinkSpeed. That is, the value {30:49} set in step S74 is updated.

FIG. 20 shows the consumer profile (consumer profile description)generated by the application #n as described above. As shown in thefigure, the first region is the only region. Parameters set in thisregion have values set by the processing in steps S71 to S78 describedabove.

When the application #n has the consumer profile shown in FIG. 20, uponreceiving the provider profile shown in FIG. 19, transmitted from theapplication #1, in step S26 shown in FIG. 6, the application #ndetermines whether link speed 30:48 (FIG. 20) as the main-factorparameter of the consumer profile has a matching part with the value ofthe main parameter of the provider profile. In the provider profileshown in FIG. 19, link speed for the first region is 30:49, link speedfor the second region is 50:199, and link speed for the third region is200:4800. Thus, it is determined that a matching part (overlapping part)exists in at least one region (the first region) (the range of 30 to 49overlaps the range of 30 to 48, at values of 30 to 48). Thus, asdescribed above, in step S26 shown in FIG. 6, the application #nexecutes a registration request process for the service provided, andthen creates a profile atom in step S42.

Next, the profile atom generating process will be described withreference to flowcharts shown in FIGS. 21 and 22. This processcorresponds to the processing executed in step S42 shown in FIG. 7.

In this process, first, by the processing of steps S111 to S115, aregion is selected from parameter sets for respective region, presentedby a service provider, with consideration of Link Speed (main-factorparameter) of a network connected to a service consumer.

More specifically, in step S111, the application #n receives theprovider profile description (FIG. 19) transmitted from the application#1. This processing corresponds to the processing in step S41.

Then, in step S112, the application #n initializes an internal variableN to 0. In step S113, the application #n extracts parameters of (N+1)-thregion (in this case, the first region, since N=0) from the providerprofile received by the processing in step S111 and the consumer profile(FIG. 20) created by executing the processes shown in FIGS. 16 and 17.

In step S114, the application #n determines whether Link Speed of theregion extracted by the processing in step S113 overlaps. In this case,it is determined whether Link Speed of the first region overlaps. IfLink Speed does not overlap, the process proceeds to step S116, in whichit is determined whether the value N is a value other than 0. In thiscase, the value N is 0, so that step S116 evaluates to NO. That is, inthis case, since no region with overlapping Link Speed exists, theapplication #n is not allowed to communicate with the application #1.The process is then exited.

In the example shown in FIGS. 19 and 20, Link Speed for the first regionin FIG. 20, i.e., 30:48, overlaps Link Speed for the first region inFIG. 19, i.e., 30:49. Thus, the process proceeds to step S115, in whichthe application #n increments the value of the variable N by 1 (in thiscase, N=1).

The process then returns to step S113, in which the application #nextracts parameters of the provider profile and the consumer profile forthe (N+1)-th region (in this case, the second region, since N=1).

In step .S114, the application #n, of the parameters extracted by theprocessing in step S113, determines whether Link Speed overlaps. If LinkSpeed for the second region overlaps, the process proceeds to step S115,in which the value of the variable N is further incremented by 1 (inthis case, N=2).

Then, in step S113, the provider profile and the consumer profile forthe (N+1)-th region (in this case, the third region, since N=2) areread. In step S114, it is determined whether Link Speed among theparameters extracted in step S113 overlaps. If it is determined that anoverlap exists, the process again proceeds to step S115, in which thevalue of the variable N is incremented by 1 (in this case, N=3).

As described above, all regions having overlapping Link Speed areextracted by repeatedly executing the processing in steps S113 to S115.If corresponding regions no longer exist in the provider profile and theconsumer profile, or even if corresponding regions exist, if Link Speeddoes not overlap, the process proceeds from step S114 to step S116, inwhich it is determined whether the value N is a value other than 0. Inthis case, the value N corresponds to the number of a region having alargest number (region having highest function) among the regions havingoverlapping Link Speed. Thus, when at least one region havingoverlapping Link Speeds exists, the value N is a value other than 0.

In that case, the process proceeds to step S117, in which theapplication #n extracts parameters of the provider profile and theconsumer profile for the N-th region. In step S118, the application #ndetermines whether Access Method of the provider profile and AccessMethod of the consumer profile, extracted by the processing in stepS117, overlap.

In the example shown in FIGS. 19 and 20, Access Method for the firstregion is both {1|2}, so that it is determined that Access Methodoverlaps. If it is determined that Access Method does not overlap, theprocess proceeds to step S119, in which the value of the variable N isdecremented by 1. That is, the region being considered for processing ischanged to a region having a number that is smaller by 1. Then, in stepS116, it is determined whether the value N is a value other than 0. Ifit is determined that the value N is not a value other than 0, i.e., thevalue N is 0, it indicates that a profile atom is not found after all.Then, the process is exited.

As described above, if at least one parameter without overlapping existsamong the five dimensional parameters, the processing target is moved toa region with a number that is immediately below. Similarly, when it isdetermined that X scale and Y scale do not overlap in step S126, whichwill be described later, or when it is determined that Audio does notoverlap in step S129, the processing target is moved to a region with anumber immediately below.

In the example shown in FIGS. 19 and 20, Access Method for the firstregion are both {1|2}, so that the parameters overlap. Thus, the processproceeds to step S120, in which the application #n determines whetherHTTP Tunnelling is selected as a priority. When a firewall exists in thepath to the Internet, HTTP Tunnelling is selected as a priority.

In this case, the process proceeds to step S121, in which theapplication #n sets {2} in AtomAccess, which is Access Method for theprofile atom (FIG. 13). On the other hand, if it is determined in stepS120 that HTTP Tunnelling is not a priority, the application #n sets {1}in AtomAccess in step S122 (FIG. 13).

After the processing in step S121 or step S122, the process proceeds tostep S123, in which the application #n determines whether the value ofCurrentLinkSpeed is less than or equal to the maximum value of LinkSpeedin the provider profile. If the value of CurrentLinkSpeed representingthe effective throughput of the line connected to the application #n isnot larger than the maximum value of Link Speed parameter in theprovider profile, the application #n sets the value of CurrentLinkSpeedin AtomLinkSpeed in step S124.

On the other hand, if it is determined in step S123 that the value ofCurrentLinkSpeed is greater than the maximum value of Link Speed, theapplication #n sets the maximum value of LinkSpeed of the provider filein AtomLinkSpeed in step S125.

For example, if CurrentLinkSpeed is 48 kbps and the maximum value ofLinkSpeed parameter of the provider file is 49 kbps, {48} is set inAtomLinkSpeed of the profile atom in step S125.

In step S126, the application #n determines whether X scale parametersand Y scale parameters overlap between the provider profile and theconsumer profile. If overlapping does not exist between these profiles,as described earlier, the process proceeds to step S119, in which thevalue N is decremented by 1, and the process enters processing involvinga region with a number smaller by 1.

If it is determined in step S126 that X scale parameters and Y scaleoverlap, in step S127, the application #n sets the maximum overlappingvalue of X scale in AtomXscale, which is X scale for the profile atom.Furthermore, in step S128, the application #n-sets the maximumoverlapping value of Y scale in AtomYscale, which is Y scale for theprofile atom.

For example, if the maximum value of X scale is 160 pixels (10×16pixels) for both the provider profile and the consumer profile, and ifthe maximum value of Y scale is 112 pixels (7×16 pixels) for both theprovider profile and the consumer profile, {10} is set in AtomXscale ofthe profile atom and {7} is set in AtomYscale of the profile atom.

In step S129, overlapping of Audio Codec between the provider profileand the consumer profile is checked. If overlapping does not existbetween these profiles, as described earlier, the process proceeds tostep S119, in which the value N is decremented by 1, and the processenters processing for a region with a number smaller by 1.

If it is determined in step S129 that Audio Codec overlaps between theprovider profile and the consumer profile, the process proceeds to stepS130. In step S130, the application #n selects the best audio qualitywithin overlapping Audio Codec and sets it as AtomAudio, which is AudioCodec for the profile atom. In this example, Audio Codec written inprofiles are numbered so that the values become larger in order of loweraudio quality to higher audio quality. Thus, high audio quality isselected by selecting a largest number among overlapping Audio Codec.For example, if Audio Codec is 0: None or 1: CELP 8 k for both theprovider profile and the consumer profile, {1} is set in AtomAudio ofthe profile atom.

In step S131, the application #n creates (assembles) a profile atombased on the values of parameters of the profile atom, determined by theprocessing in the steps described above.

By the processing in step S42 shown in FIG. 7, the application #1 isnotified of the profile atom generated as described above.

As described above, according to the present invention, M-dimensionalparameters relating to a service, the parameters being represented asnumeric values, are obtained, and detailed information representingcontent of the service by the parameters is generated. Accordingly, thecontent of the service can be readily recognized, so that twoapparatuses are allowed to exchange information quickly and reliably viaa network.

By normalizing the parameters by base units, detailed information can berepresented by smaller values. This facilitates processing forcomparison.

By dividing the parameters into a plurality of regions, parameters thatallow information to be actually transferred simply without using acomplex algorithm can be selected.

By representing the parameters as one-dimensional values, the parameterscan be readily compared.

By representing detailed information using a combination of integervalues and logic symbols, parameters can be represented in a format thatreadily allows comparison.

By using, as logic symbols, a first symbol representing selection of oneof the plurality of integer values and a second symbol representing aset of the integer values, parameters can be represented in a formatthat readily allows comparison.

By using, as the second symbol, a start value representing a start of arange, an end value representing an end of the range, and a stepdefining a change width between the start value and the end value, therange can be represented in a format that readily allows comparison.

When service is a service of sending or receiving data via a network,information needed by two apparatuses for exchanging information quicklyand reliably can be exchanged.

By attaching an identifier to detailed information, the detailedinformation can be readily identified.

By sending an identifier to a destination via a network, the destinationis allowed to readily identify detailed information.

By sending detailed information associated with an identifier to adestination and receiving M-dimensional parameters sent from thedestination, detailed information need not be sent from the beginning,allowing reliable exchange of information while efficiently using thetransmission path.

By receiving an identifier sent via a network, detailed information canbe readily recognized.

By requesting sending of detailed information associated with anidentifier received, useless exchange of detailed information with aparty with which communication is not possible is prevented.

By using a data structure including M-dimensional parameters andrepresenting the parameters by combinations of integer values and logicsymbols, data can be described in a format such that content can bereadily recognized.

Although M:5 in the above description, the dimensions may be larger orsmaller than that.

Furthermore, although the above description has been made in the contextof an example of a service of providing AV data, the present inventioncan be applied to cases where various services are provided and used aswell as the service of providing AV data.

The processing described above may be executed by hardware in the caseof network-enabled CE equipment or the like. Obviously, the processingmay be executed by software.

When the series of processes are executed by software, programsconstituting the software are installed from a network or a recordingmedium onto a computer included in special hardware, a general-purposecomputer or the like that is capable of executing various functions withvarious programs installed thereon.

The recording medium may be a package media carrying the programs,provided to a user for providing programs separately from a main unit ofthe apparatus, such as a magnetic disk 141 (including a floppy disk), anoptical disk 142 (including a CD-ROM (Compact Disk-Read Only Memory) anda DVD (Digital Versatile Disk)), a magneto-optical disk 143 (includingan MD (Mini-Disk)), or a semiconductor memory 144. Alternatively, therecording medium may be the ROM 122 or a hard disk included in thestorage unit 128, carrying the programs, provided as included in advancein the main unit of the apparatus.

In this specification, steps defining the programs recorded on therecording medium may include processes that are executed sequentially inthe orders described, and also include processes that are executed inparallel or individually, not necessarily sequentially.

In this specification, a system refers to the entirety of apparatusesconstituted of a plurality of apparatuses.

INDUSTRIAL APPLICABILITY

As described hereinabove, according to a first invention, informationrepresenting content of a service can be generated. In particular,detailed information that allows content of a service to be readilyconfirmed can be generated. Accordingly, it is assured that content of aservice is communicated to the other party, serving to form a connectionwith an apparatus of the other party quickly and reliably and toexchange data.

According to a second invention, content of a service can berepresented. In particular, content of a service can be represented suchthat it can be readily confirmed. Accordingly, it becomes possible toconfirm content of a service reliably, serving to form a connection withan apparatus of the other party quickly and reliably and to exchangedata.

1. A computer program product comprising a computer storage mediumstoring a computer program code mechanism which when executed by acomputer, causes the computer to perform a method, comprising: obtainingmulti-dimensional parameters relating to a service of sending orreceiving data via a network, the parameters being represented asnumeric values normalized by base units and indicating capabilities ofanother computer remote from the computer, wherein the parametersinclude at least a link speed relating to the service of sending orreceiving data via the network and a horizontal and vertical size of adisplay of the another computer, and the base units are kilobits persecond (kbps) corresponding to the link speed parameter, and a number ofpixels corresponding to each of the horizontal and vertical size of thedisplay of the another computer; and generating detailed informationrepresenting content of the service of sending or receiving data via thenetwork by the parameters obtained, wherein the detailed informationrepresents capabilities of the another computer and is employed forconfirming availability of the service of sending or receiving data viathe network.
 2. The computer program product according to claim 1,wherein the obtaining step divides the parameters into a plurality ofregions based on a main-factor parameter that restricts coexistence withother parameters, and obtains the parameters for each of the regions. 3.The computer program product according to claim 2, wherein the obtainingstep obtains the multi-dimensional parameters for each of the regions asone-dimensional integer values, respectively.
 4. The computer programproduct according to claim 3, wherein the generating step represents thedetailed information by a combination of the integer values and logicsymbols.
 5. The computer program product according to claim 4, whereinthe generating step uses a first symbol representing selection of one ofthe plurality of integer values and a second symbol representing a setof the integer values.
 6. The computer program product according toclaim 5, wherein the generating step uses, as the second symbol, a startvalue representing a start of a range, an end value representing an endof the range, and a step defining a change width between the start valueand the end value.
 7. The computer program product according to claim 1,further comprising the steps of: obtaining an identifier for identifyingthe service of sending or receiving data via the network; and adding theidentifier to the detailed information representing content of theservice of sending or receiving data via the network.
 8. The computerprogram product according to claim 7, further comprising: a firstsending step of sending the identifier to a specified destination viathe network.
 9. An information processing method for an informationprocessing apparatus, comprising: obtaining multi-dimensional parametersrelating to a service of sending or receiving data via a network, theparameters being represented as numeric values normalized by base unitsand indicating capabilities of another computer remote from thecomputer, wherein the parameters include at least a link speed relatingto the service of sending or receiving data via the network and ahorizontal and vertical size of a display of the another computer, andthe base units are kilobits per second (kbps) corresponding to the linkspeed parameter, and a number of pixels corresponding to each of thehorizontal and vertical size of the display of the another computer; andgenerating detailed information representing content of the service ofsending or receiving data via the network by the parameters obtained,wherein the detailed information represents capabilities of the anothercomputer and is employed for confirming availability of the service ofsending or receiving data via the network.
 10. An information processingapparatus comprising: an interface configured to obtainmulti-dimensional parameters relating to a service of sending orreceiving data via a network, the parameters being represented asnumeric values normalized by base units and indicating capabilities ofanother computer remote from the computer, wherein the parametersinclude at least a link speed relating to the service of sending orreceiving data via the network and a horizontal and vertical size of adisplay of the another computer, and the base units are kilobits persecond (kbps) corresponding to the link speed parameter, and a number ofpixels corresponding to each of the horizontal and vertical size of thedisplay of the another computer; and a processor configured to generatedetailed information representing content of the service of sending orreceiving data via the network by the parameters obtained, wherein thedetailed information represents capabilities of the another computer andis employed for confirming availability of the service of sending orreceiving data via the network.